The increasing complexity of computer and mobile systems has led to a corresponding increase in the number of inputs which can validly be entered into a parent device using a keyboard (the word keyboard when used herein is intended to encompass all keyboards and keypads). In addition, the number of commands available to the user has also increased. However, a keyboard has a set number of keys, thus multiple functions and entries may be mapped to each individual key. For example on the keypad of a typical mobile phone the center key can be used to enter seven different inputs (namely 5, j, k, l, J, K, and L).
The keys of a conventional keyboard may have only digital sensing capability—they are either on or off. As a result, once a command and/or input is mapped to a particular key, cumbersome additional context-sensitive commands or key combinations may be used by the user to identify the intended input/command. This in turn reduces the speed at which data can be entered using conventional keys of a keyboard.
One attempt to address this problem has been to provide keyboards and keypads with dedicated programmable keys, which can be mapped to a particular input or function by a user. However, the additional space requirement of such keys may be undesirable for applications where space for an input device is limited e.g., laptop keyboards, mobile phone keypads, etc.